package com.cskaoyan.day03.linked;

/**
 * @author stone
 * @date 2022/01/29 17:14
 */
public class ArrayList<T> {
    //单链表、双链表
    //数组实现线性表
    Object[] elements;
    int size;
    private static final int INIT_CAPACITY = 10;
    private static final int MAX_CAPACITY = Integer.MAX_VALUE - 8;

    //todo:扩容和栈是一样的
    public int size() {
        return size;
    }

    public boolean isEmpty() {
        return size == 0;
    }

    public boolean add(T value) {
        //todo: 要扩容
        //新数据放哪里 → size
        return true;
    }

    public boolean remove(T value) {
        //todo: 非空判断
        //遍历
        //找到当前值对应的下标，要将该下标后面位置的值前移，遍历顺序
        return true;
    }

    public boolean add(int index, T value) {
        //todo:先考虑扩容
        //找到对应下标，找到当前位置做后移，遍历顺序
        return true;
    }

    public T remove(int index) {
        //todo:非空判断，前移
        return null;
    }

}
